const path = require('path')

module.exports = {
    // 部署应用包时的基本 URL,用法和 webpack 本身的 output.publicPath 一致
    publicPath: './',
    // 输出文件目录
    outputDir: 'dist',
    // eslint-loader 是否在保存的时候检查
    lintOnSave: true,
    // 是否使用包含运行时编译器的 Vue 构建版本
    runtimeCompiler: false,
    // 生产环境是否生成 sourceMap 文件
    productionSourceMap: false,
    // 生成的 HTML 中的 <link rel="stylesheet"> 和 <script> 标签上启用 Subresource Integrity (SRI)
    integrity: false,
    // webpack相关配置
    chainWebpack: (config) => {
        config.resolve.alias
            .set('vue$', 'vue/dist/vue.esm.js')
            .set('@', path.resolve(__dirname, 'src'));
        config.module
            .rule('svg')
            .exclude.add(path.resolve('src/icons'))
            .end();

        config.module
            .rule('icons')
            .test(/\.svg$/)
            .include.add(path.resolve('src/icons'))
            .end()
            .use('svg-sprite-loader')
            .loader('svg-sprite-loader')
            .options({
                symbolId: 'icon-[name]'
            });

    },
    // 是否使用 thread-loader
    parallel: require('os').cpus().length > 1,
    // webpack-dev-server 相关配置
    devServer: {
        open: true,
        host: '0.0.0.0',
        port: 6080,
        https: false,
        hotOnly: false,
        // http 代理配置
        proxy: {
            '/admin': {
                target: process.env.VUE_APP_BASE_URL,
                changeOrigin: true,
                pathRewrite: {
                    '^/admin': ''
                }
            },
            '/proxy': {
                target: process.env.VUE_APP_BASE_PROXY,
                changeOrigin: true,
                pathRewrite: {
                    '^/proxy': ''
                }
            },
            '/webroot': {
                target: 'http://127.0.0.1:8075', // 接口地址
                changeOrigin: true, // 是否跨域
                pathRewrite: { // 转发
                    '^/webroot': '/webroot'
                },

            },
        },
        before: (app) => {}
    },
    // 第三方插件配置
    pluginOptions: {

    }
}